<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Map的增删改查操作</title>
</head>
<body>
    
</body>
<script>
    /*
        Map的增删改查有的方法和Set的方法基本一致 
            Set有 add() delete() clear() has()
            Map有 set() delete() clear() has()
    */
    let obj = {
        name:'jimmy'
    }
    let map = new Map()
    map.set(obj,'myname').set('heihei','xuexue')  // Map的key可以直接存变量
    console.log(map)  // Map(2) {{…} => "myname", "heihei" => "xuexue"}
    console.log(map.delete('heihei'))  // true
    console.log(map) //Map(1) {{…} => "myname"}
    console.log(
        map.delete({   //false  虽然要删除的是和obj一样的内容  但是因为Map和对象一样都是引用类型  虽然值一样  但是地址是不一样的  所以会删除失败
        name:'jimmy'
    })
    )
    console.log(map.clear()) //undefined  清空操作时没有返回值的  因为清空操作无论如果都会成功
    console.log(map)  //Map(0) {}

    map.set('name','jimmy').set('age','22')
    console.log(map.has('name'))  //true  has()方法时判断是否含有指定的成员
</script>
</html>